package com.yuyou.fn.educational.service;

import com.github.wens.framework.service.ISuperService;
import com.github.wens.mybatisplus.plugins.Page;
import com.yuyou.fn.common.util.Principals;
import com.yuyou.fn.educational.entity.StudentRefund;
import com.yuyou.fn.educational.vo.PeriodBusTeamGradeRefundAmountVo;
import com.yuyou.fn.educational.vo.StudentRefundQueryVo;
import com.yuyou.fn.educational.vo.StudentRefundVo;
import com.yuyou.fn.educational.vo.SumRefundVo;
import com.yuyou.fn.platform.permission.DataPermission;
import org.apache.poi.ss.usermodel.Workbook;

import java.util.List;

/**
 *
 * StudentRefund 表数据服务层接口
 *
 */
public interface IStudentRefundService extends ISuperService<StudentRefund,Long> {

    void deleteStudentRefund(Long studentRefundId);

    StudentRefund saveStudentRefund(StudentRefundVo studentRefundVo,Principals.Principal principal );

    List<StudentRefund> saveStudentRefundList(List<StudentRefundVo> studentRefundVoList,Principals.Principal principal);

    Page<StudentRefund> findStudentRefundList(StudentRefundQueryVo studentRefundQueryVo, DataPermission dataPermission, int pageNo, int pageSize);

    Long countStudentRefund(StudentRefundQueryVo studentRefundQueryVo, DataPermission dataPermission);

    void changeStatus(Long studentRefundId, Integer status, String result, Principals.Principal principal );

    Workbook exportStudentRefund(StudentRefundQueryVo studentRefundQueryVo, DataPermission dataPermission);

    void changeStudentPayStatus(Long studentRefundId, String operator);

    List<StudentRefund> findListByQueryVo(StudentRefundQueryVo studentRefundQueryVo, List<Long> busTeamIds,List<Long> periodIds,int descByCreate);

    List<PeriodBusTeamGradeRefundAmountVo> findPeriodBusTeamGradeRefundAmount(StudentRefundQueryVo studentRefundQueryVo);

    SumRefundVo findSumRefund(StudentRefundQueryVo studentRefundQueryVo);


    List<StudentRefund> findStudentRefundByClassIdStatus(long classId,int status);

    List<StudentRefund> findToBalanceRefundByStudentIds(List<Long> studentIds,String ...columns);
}